package com.linkai.泛型;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;

/**
 * @Description: 泛型方法
 *                泛型：泛型提供了编译时类型安全检测机制，该机制允许程序员在编译时检测到非法的类型。
 *                泛型的本质是参数化类型，也就是说所操作的数据类型被指定为一个参数。
 * @Author: 林凯
 * @Date: 2021/10/21 22:19
 */
public class Test01 {

    // 1. 所有泛型方法声明都有一个类型参数声明部分（由尖括号分隔），该类型参数声明部分在方法返回类型之前
    // 只需要把这个 E 想象成一个抽象的类型即可，可以被替换成 String，Integer，Double 等类型
    public static <E> void printArray(E[] inputArray) {
        // 输出数组元素
        for (E e : inputArray) {
            System.out.println(e);
        }
    }

    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        // 创建不同类型的数组
        Integer[] integers = {1, 2, 5, 8, 3, 9, 7};
        Double[] doubles = {2.8, 0.2, 6.4, 8.8, 9.4};
        Character[] characters = {'A', 'E', 'D', 'I', 'O'};

        printArray(integers);
        printArray(doubles);
        printArray(characters);
    }

}
